package com.css.fxfzypg.modules.surveytaskmanage.service;

import com.css.fxfzypg.modules.group.vo.GroupVo;
import com.css.fxfzypg.modules.preassesstaskmanage.vo.PreVo;
import com.css.fxfzypg.modules.surveytaskmanage.entity.FieldSurveyTaskEntity;
import com.css.fxfzypg.modules.surveytaskmanage.vo.FieldSurveyTaskGroupVo;
import com.css.fxfzypg.modules.surveytaskmanage.vo.FieldSurveyTaskVo;
import com.css.fxfzypg.modules.surveytaskmanage.vo.FieldSurveyVo;
import com.css.fxfzypg.modules.surveytaskmanage.vo.TaskVo;

import javax.servlet.http.HttpServletRequest;
import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Map;

public interface FieldSurveyTaskService {


    String saveTask(FieldSurveyTaskVo fieldSurveyTaskVo) throws UnsupportedEncodingException;

    void saveSubTask(FieldSurveyTaskEntity subTask) throws UnsupportedEncodingException;

    Map<String,Object> getPage( TaskVo taskVo, int curPage, int pageSize);

    List<FieldSurveyTaskEntity> getSubTask(String parentTaskId);

    FieldSurveyTaskGroupVo findById(String id);

    void updateTask(FieldSurveyTaskEntity fieldSurveyTaskEntity);

    void completeTask(List<String> ids);

    void assignGroup(FieldSurveyTaskEntity fieldSurveyTaskEntity);

    void deleteTask(List<String> list);

    Map<String, Object> getAppPage(HttpServletRequest request, TaskVo taskVo, int curPage, int pageSize);

    String getSubTaskCode(String taskNum);

    String getTaskCode(String taskYear);

    List<Map<String, Object>> getActionTrackPersonnel(String createUser, String groupId,String taskId);

    List<FieldSurveyTaskEntity> getParentTask();

    List<PreVo> getFuTask();

    /**
     * 获取某任务下组长
     * @param taskNum
     * @return
     */
    String getGroupLeaderId(String taskNum);

    /**
     * 获取某任务下所有组员
     * @param taskNum
     * @return
     */
    List<Map<String, Object>> getTeamMembers(String taskNum);

    List<TaskVo> getTask();

    /**
     * 获取所有任务管理员
     * @return
     */
    List<TaskVo> getTaskManagers();

    /**
     * 获取所有任务编号
     */
    List<Map<String, Object>> getAllTaskNum();

    String getTaskNameByTaskNum(String taskNum);

    Boolean updateTaskIntensity(String taskId, String intensity);

    FieldSurveyTaskEntity getById(String xcdcTaskId);

    List<FieldSurveyTaskEntity> getChildrenByParentId(String id);

    List<String> getGroupUserIdByTaskCode(String taskCode);
}
